White-box Fuzzing RPC-based APIs with EvoMaster: An Industrial Case Study

نویسندگان

چکیده

Remote Procedure Call (RPC) is a communication protocol to support client-server interactions among services over network. RPC widely applied in industry for building large-scale distributed systems, such as Microservices. Modern frameworks include example Thrift, gRPC, SOFARPC and Dubbo. Testing systems using communications very challenging, due the complexity of various system could employ. To best our knowledge, there does not exist any tool or solution that enable automated testing modern RPC-based services. fill this gap, paper we propose first approach literature, together with an open-source tool, fuzzing APIs. The context white-box search-based techniques. tackle schema extraction frameworks, formulate specification along parser allows from source code JVM Then, extracted employ search produce tests by maximizing heuristics newly defined specific domain. We built extension fuzzer (i.e., EvoMaster ), has been integrated into real industrial pipeline be development process assess novel approach, conducted empirical study two artificial four web selected partner. In addition, further demonstrate its effectiveness application settings, report results employing another 50 APIs autonomously partner their processes. Results show capable enabling test case generation 54 industrial). also compared simple grey-box technique existing manually written tests. Our achieves significant improvements on coverage. Regarding fault detection, conducting careful review generated APIs, total 41 faults were identified, which have now fixed. Another 8,377 detected are currently under investigation.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Well-typed generic smart-fuzzing for APIs

Despite recent advances in program certification, testing remains a widely-used component of the software development cycle. Various flavours of testing exist: popular ones include unit testing, which consists in manually crafting test cases for specific parts of the code base, as well as QuickCheck-style testing, where instances of a type are automatically generated to serve as test inputs. Th...

متن کامل

The future of grey-box fuzzing

Society are becoming more dependent on software, and more artifacts are being connected to the Internet each day[31]. This makes the work of tracking down vulnerabilities in software a moral obligation for software developers. Since manual testing is expensive[7], automated bug finding techniques are attractive within the quality assurance field, since it can save companies a lot of money. This...

متن کامل

Assessing Model-Based Testing: Results from an Industrial Case Study

Companies continuously look for ways to improve their processes and cut costs using new technologies. Model-based testing (MBT) is a technology that has the potential to be such a cost saver. In this paper, we present a case study in which we compare manual testing processes with MBT processes based on finite state machine (FSM) models. The system under test (SUT) is a professionally developed ...

متن کامل

The RPC-Memory Case Study: A Synopsis

The RPC Memory speci cation problem was proposed by Broy and Lamport as a case study in the formal design of distributed and concurrent systems The idea was to use it as a basis for comparing various approaches to formal speci ca tion re nement and veri cation Various preliminary solutions were presented and discussed during a workshop at Schloss Dagstuhl Germany in September Authors were then ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

ژورنال

عنوان ژورنال: ACM Transactions on Software Engineering and Methodology

سال: 2023

ISSN: ['1049-331X', '1557-7392']

DOI: https://doi.org/10.1145/3585009